package auth

import (
	"x-admin/backend/internal/middleware"

	"github.com/gin-gonic/gin"
	"gorm.io/gorm"
)

// RegisterRoutes 注册认证路由
func RegisterRoutes(r *gin.RouterGroup, db *gorm.DB) {
	// 创建依赖
	repo := NewRepository(db)
	service := NewService(repo)
	handler := NewHandler(service)

	// 认证相关路由（无需认证）
	authGroup := r.Group("/auth")
	{
		authGroup.POST("/login", handler.Login) // 用户登录
	}

	// 需要认证的路由
	protectedAuth := r.Group("/auth")
	protectedAuth.Use(middleware.AuthMiddleware())
	{
		protectedAuth.POST("/logout", handler.Logout)                  // 用户登出
		protectedAuth.GET("/userinfo", handler.GetUserInfo)            // 获取用户信息
		protectedAuth.POST("/change-password", handler.ChangePassword) // 修改密码
		protectedAuth.PUT("/profile", handler.UpdateProfile)           // 更新个人信息
		protectedAuth.GET("/menus", handler.GetUserMenus)              // 获取用户菜单
		protectedAuth.GET("/permissions", handler.GetUserPermissions)  // 获取用户权限
	}
}
